1. Field of the Invention
The present invention relates to the design of distributed computing systems. More specifically, the present invention relates to a method and an apparatus that uses an inverse mapping structure for subset determination to facilitate event notification in a distributed computing system.
2. Related Art
Distributed computing systems presently make it possible to develop distributed applications that can harness the computational power of multiple computing nodes in performing a computational task. This can greatly increase the speed with which the computational task can be performed. However, it is often hard to coordinate computational activities between application components running on different computing nodes within the distributed computing system.
In order to operate properly, distributed applications must somehow keep track of the state of application components in order to coordinate interactions between the application components. This can involve periodically exchanging “heartbeat” messages or other information between application components to keep track of which application components are functioning properly.
Some distributed operating systems presently keep track of this type of information for purposes of coordinating interactions between operating system components running on different computing nodes. However, these distributed operating systems only use this information in performing specific operating system functions. They do not make the information available to distributed applications or other clients.
Hence, in many situations, a distributed application has to keep track of this information on its own. Note that the additional work involved in keeping track of this information is largely wasted because the distributed operating system already keeps track of the information. Moreover, the task of keeping track of this information generates additional network traffic, which can impede communications between nodes in the distributed computing system.
Hence, what is needed is a method and an apparatus that enables a distributed application to be notified of events that occur on different computing nodes within a distributed computing system without requiring the distributed application to perform the event monitoring operations.
One problem in performing event notification is to rapidly determine which clients are to be notified of an incoming event. The naive approach is to compare the incoming event against each of the client registrations, wherein a given client registration identifies specific events that an associated client has registered to be notified of. Note that this may require an incoming event to be compared against every client registration in the system, which can potentially be very slow.
Hence what is needed is a method and an apparatus for rapidly determine which clients are to be notified of a specific incoming event.